﻿using System;

namespace Lesson4_交错数组
{
    class Program 
    {
        static void Main(string[] args) 
        {

            #region 基本概念
            //使用较少，仅作了解
            //交错数组即 数组的数组
            //交错数组每 行 的列数可能不同
            #endregion

            #region 数组的申明
            // 1.变量类型[][] 交错数组名;
            int[][] arr1;

            // 2.变量类型[][] 交错数组名 = new 变量类型[行数][];
            //列数不定，因此不填
            int[][] arr2 = new int[3][];

            // 3.变量类型[][] 交错数组名 = new 变量类型[行数][]{一维数组一, 一维数组二, ......}
            int[][] arr3 = new int[3][] { new int[] {1, 2, 3},
                                          new int[] {1, 2},
                                          new int[] {1} };

            // 4.变量类型[][] 交错数组名 = new 变量类型[][]{一维数组一, 一维数组二, ......}
            int[][] arr4 = new int[][] { new int[] {1, 2, 3},
                                         new int[] {1, 2},
                                         new int[] {1} };

            // 5.变量类型[][] 交错数组名 = {一维数组一, 一维数组二, ......}
            int[][] arr5 = { new int[] {1, 2, 3},
                             new int[] {1, 2},
                             new int[] {1} };
            #endregion

            #region 数组的使用
            int[][] array = { new int[]{ 1,2,3,},
                              new int[]{ 1,2} };
            // 1.数组的长度
            //获取行数
            Console.WriteLine(array.GetLength(0));
            //获取某一行的列数
            Console.WriteLine(array[0].Length);

            // 2.访问交错数组中元素
            Console.WriteLine(array[0][1]);

            // 3.修改交错数组中的元素
            array[0][1] = 3;

            // 4.遍历交错数组
            for (int i = 0; i < array.GetLength(0); i++) 
            {
                for (int j = 0; j < array[i].Length; j++)
                {
                    Console.Write(array[i][j] + " ");
                }
                Console.WriteLine();
            }

            // 5.修改二维数组的长度
            // 6.查找二维数组中的元素
            //与二维数组方法相同

            #endregion

        }
    }  
}